#ifndef MATVIEW_HPP_
# define MATVIEW_HPP_

# include "Mat.hpp"

class MatView: public Mat4f
{
public:
	MatView(void);
	~MatView(void);

	void	translate(float x, float y, float z);
	void	rotate(float angle, float x, float y, float z);

	Mat3f	normalMat() const;

	void	lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float axeX, float axeY, float axeZ);

	Vec3f const&	eye() const
	{
		return _eye;
	}

	Vec3f const&	center() const
	{
		return _center;
	}

	Vec3f const&	axe() const
	{
		return _axe;
	}

private:
	Vec3f	_eye;
	Vec3f	_center;
	Vec3f	_axe;

	Vec3f	_visionVec;
	Vec3f	_normalVec;
	Vec3f	_newAxeVec;
};

#endif // !MATVIEW_HPP_